(computer science) software that controls the execution of computer programs and may provide various services